<?php

namespace app\common\model\Business;

use think\Model;
// 引入软删除的模型
use traits\model\SoftDelete;
class Address extends Model
{
     //在模型内部去引入软删除
     use SoftDelete;
    //
    protected $name = 'business_address';

    // 开启自动写入
    protected $autoWriteTimestamp = 'int';

    // 设置字段的名字
    protected $createTime = false;

    // 设置更新的字段名字
    protected $updateTime = false; // 更新数据的时候不更新时间字段

    //设置软删除的字段更新的时间字段
    protected $deleteTime = 'deletetime';
    // 忽略数据表不存在的字段
    protected $field = true;

    protected $append = [
        'region_text'
    ];

    public function provinces(){
        // address.province = region.code
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Region','province','code',[],'LEFT')->setEagerlyType(0);
    }

    public function citys(){
        // address.city = region.code
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Region','city','code',[],'LEFT')->setEagerlyType(0);
    }

    public function districts(){
        // address.district = region.code
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Region','district','code',[],'LEFT')->setEagerlyType(0);
    }

    public function getRegionTextAttr($value, $data)
    {
        $region = '';

        // 省
        $province = empty($data['province']) ? '' : $data['province'];
        if ($province) 
        {
            $province_text = model('Region')::where('code', $province)->value('name');
            $region = $province_text . "-";
        }

        // 市
        $city = empty($data['city']) ? '' : $data['city'];
        if ($city) 
        {
            $city_text = model('Region')::where('code', $city)->value('name');
            $region .= $city_text . "-";
        }

        // 区
        $district = empty($data['district']) ? '' : $data['district'];
        if ($district) 
        {
            $district_text = model('Region')::where('code', $district)->value('name');
            $region .= $district_text;
        }

        //广东省-广州市-海珠区
        return $region;
    }
}
